9333
16914
Отже, у мене виникають проблеми з з’ясуванням правильного використання list :: sort () щодо списку структур. Ось відповідний код:
структура студент
{
char firstnm [20],
lastnm [20];
int id,
сорт;
};
list  sList;
// Нерелевантний код ...
cout << "Будь ласка, введіть своє ім'я, ідентифікатор та оцінку. (Наприклад: myfirst mylast 0 12) \ n";
cin >> data.firstnm >> data.lastnm >> data.id >> data.grade;
sList.push_back (дані);
sList.sort ();
Проблема, яку я намагаюся вирішити, полягає у використанні sList.sort () для сортування за ідентифікатором. Однак я не уявляю, як правильно передати його в list :: sort (). Заздалегідь дякуємо за будь-яку допомогу / час!
EDIT: Рішення просто додало це до моєї структури
оператор bool <(const student & cmp) const {
повернути ідентифікатор 
                                
Ви повинні поглянути на std :: sort. (https://en.cppreference.com/w/cpp/algorithm/sort) Існує кілька визначень цієї функції, і одне, де ви можете вказати, що ви хочете сортувати.
Крім того, погляньте на цю публікацію, я думаю, що це те, що вам потрібно: https://stackoverflow.com/a/21234017/6663947
Редагувати:
це приклад компаратора:
sList.sort ([] (const student & a, const student & b) {return a.id 
сортування порожнеч (порівняти комп);
Припускаючи, що ви хочете відсортувати об'єкти студента у вашому списку за ідентифікатором ключа у порядку зростання. Ви можете визначити оператор <для визначеного користувачем класу студента як:
оператор bool <(студент const & a, студент const & b) {
повернути a.id